home *** CD-ROM | disk | FTP | other *** search
/ Mac Magazin/MacEasy 40 / Mac Magazin and MacEasy Magazine CD - Issue 40.iso / Software / Entwickler / Fantasm™5 Demo / Fantasm 5 / Anvil / Anvil.rsrc / EdHl_500_DIRECTIVES ref. < prev    next >
Text File  |  1997-11-09  |  8KB  |  174 lines

  1.                         Fantasm 5 directives and in-built variables
  2.                         ———————————————————————————————————————————
  3. Revision 3. Copyright © Lightsoft 1997.
  4.                         
  5.                         
  6.                         Directives
  7.                         ——————————  
  8. DC.B, DC.W, DC.L,DCOFF    DEFINE CONSTANTS   - 68k                           
  9. DS.B, DS.W, DS.L          DEFINE SPACE - 68k
  10.  
  11. DC.B,DC.H,DC.W            DEFINE CONSTANTS - PPC
  12. DS.B,DS.H,DS.W,DS.D       DEFINE SPACE - PPC
  13.  
  14. DF.S, DF.D                DEFINE FLOATING POINT DATA - PPC
  15. DFSIN.S, DFSIN.D          DEFINE FLOATING POINT SIN (DEGREES) - PPC
  16.  
  17. DATA                      EXPLICIT DATA SECTION LABEL DEFINITION - PPC.
  18.  
  19. CSTRING                   DEFINE DATA AS A "C" TYPE STRING
  20. PSTRING                   DEFINE DATA AS A PASCAL TYPE STRING 
  21.  
  22. SECTION {NAME}            DEFINE A NEW NAME SPACE FOR LOCAL LABELS.
  23.  
  24. EQU                       EQUATE A CONSTANT TO A LABEL
  25. SET                       SET  A LABEL TO A VALUE 
  26. REQU, REG                 EQUATE A LABEL TO A REGISTER
  27.  
  28. RSRESET, RS.B, RS.W       GENERATE POSITIVE OFFSETS FROM ZERO (USED FOR BSS IN PPC)
  29. RS.L
  30.  
  31. EVEN                      MAKE PC ADDRESS EVEN  (MAINTAINED FOR BACKWARD COMPATIBILTY) 
  32.  
  33. ALIGN {2,4,8}             MAKE PC OR DATA ALIGNED
  34. RS_ALIGN {2,4,8,32,64,256}    
  35.                           MAKE THE RS COUNTER ALIGNED TO THE OPERAND
  36. RS_AUTO_ALIGN {on,off}    MAKE THE RS COUNTER 8 ALIGNED AFTER EVERY RS DIRECTIVE.
  37.  
  38. GLOBRESET, GLOBOFF.B      A5 GLOBAL OFFSETS - 68K
  39. GLOBOFF.W, GLOBOFF.L
  40.  
  41. IF,IFNE, IFEQ, IFLT,      CONDITIONAL ASSEMBLY (NESTS TO 65536 LEVELS)
  42. IFLE,IFGT, IFGE, IFD, 
  43. IFND,IFC, IFNC, ELSE,
  44. ENDC, ENDIF
  45.  
  46. REPEAT, UNTIL_GT,         CONDITIONAL ASSEMBLY LOOP STRUCTURE (DOES NOT NEST)
  47. UNTIL_GE, UNTIL_EQ, 
  48. UNTIL_NE, UNTIL_LT,
  49. UNTIL_LE
  50.  
  51. DEF, XDEF, GLOBAL,PUBLIC  DEFINE A LABEL AS BEING GLOBAL (ACCESIBLE TO OTHER FILES IN
  52.                           THE PROJECT)
  53. REF, XREF, EXTERN         DEFINE A LABEL AS BEING IN AN EXTERNAL FILE
  54. EXTERN_DATA               DEFINE A DATA LABEL AS EXTERNAL - PPC.
  55. TOC_ROUTINE               DEFINE A LABEL AS BEING A CODE POINTER IN THE TOC - PPC
  56.  
  57. TITLE, INPUT, OUTPUT      SETUP LIBRARIAN INFO FIELDS
  58.  
  59. ENTRY                     TELLS SYSTEM WHERE THE PROGRAM EXECUTION STARTS (MANDATORY)
  60.  
  61. PROC_68K, PROC_PPC        SET WHICH ASSEMBLER IS IN USE
  62.  
  63. TRON, TROFF               TRACE TO LOG ON/OFF
  64. DEBUG                     CALL THE DEBUGGER AT THIS POINT IN THE PROGRAM - 68K
  65. Debug                     POWERPC MACRO EMULATES 68K DEBUG DIRECTIVE.
  66.  
  67. INCBIN                    INCLUDE A BINARY FILE AT CURRENT PC
  68. INCLUDE                   INCLUDE A FILE FROM _SRCINCS AREA
  69. INCLUDEH                  INCLUDE A FILE FROM THE "ANVIL LOW LEVEL DEFS" FOLDER
  70.  
  71. FAIL {"report string"}      STOP ASSEMBLY IMMEDIATELY
  72. MACRO ,ENDM               MACRO DEFINITIONS (NESTS TO 24 LEVELS)
  73.  
  74. EQU$                      ASSIGN A STRING TO A STRING VARIABLE [A$] THROUGH [Z$]
  75. LEFT$                     STRING SLICING
  76. MID$                      STRING SLICING
  77. RIGHT$                    STRING SLICING
  78. CONCAT$                   STRING ADDITION
  79. LEN                       LENGTH OF A STRING
  80. BIN$                      CONVERT AN IDENTIFIER TO A STRING AS A 32 BIT BINARY NUMBER.
  81. STR$                      CONVERT AN IDENTIFIER TO A STRING AS A DECIMAL NUMBER. 
  82. CHR$                      CONVERT AN IDENTIFIER TO A CHARACTER.
  83.  
  84. CLRLOG                    CLEARS THE LOG WINDOW (DOES NOT DELETE ANY TEXT IN THE LOG)
  85. GOTOXY                    MOVES LOG PRINTING COORDINATES TO X,Y (PIXEL COORDINATES)
  86. PRINT                     PRINTS A STRING AT THE CURRENT PRINTING POSITION IN THE LOG WINDOW.
  87.                           (STRING IS NOT RECORDED IN LOG BUFFER, THIS DIRECTIVE SIMPLY PRINTS THE
  88.                           STRING IN THE LOG WINDOWS PORT)
  89. PRINTLOG                  SENDS A STRING TO THE LOG WINDOW. APPENDS A CR CHARACTER TO THE STRING.
  90.                           (STRING IS RECORDED IN LOG BUFFER)
  91. PAUSE                     WAITS FOR A KEY PRESS.
  92. BEEP                      PLAYS A BEEP SOUND USING A_PLAY_SOUND
  93.  
  94. SWG_OFF                   STALL WARNING GENERATOR OFF (PPC)
  95. SWG_LOW                   STALL WARNING GENERATOR SENSITIVITY TO LOW
  96. SWG_MED                   STALL WARNING GENERATOR SENSITIVITY TO MEDIUM
  97. SWG_HIGH                  STALL WARNING GENERATOR SENSITIVITY TO HIGH (REAL PROCESSOR EMULATION)         
  98.  
  99.  
  100.                          In-built variables
  101.                          ——————————————————
  102. All in-built variables are used as normal labels, for example:
  103. which_pass?:    set    pass
  104.  
  105. narg        - returns number of parameters passed to a macro.
  106. rssz        - returns current value of RS counter as a positive value.
  107. gbsz        - returns current value of the globoff counter as a negative value.
  108. true        - returns -1 (all bits set)
  109. false       - returns 0 (all bits cleared)
  110. life        - returns the meaning of life.
  111. pass        - returns 1 if pass 1 or 2 if pass 2.
  112. m_bn        - returns state of mouse button, 0 if up and 1 if down.
  113. m_rx        - returns mouse x coordinate relative to log window.
  114. m_ry        - returns mouse y coordinate relative to log window.
  115.  
  116. lt          - returns 0
  117. gt          - returns 1
  118. eq          - returns 2
  119. so          - returns 3
  120. un          - returns 3
  121. cr0         - returns 0
  122. cr1         - returns 1
  123. cr2         - returns 2
  124. cr3         - returns 3
  125. cr4         - returns 4
  126. cr5         - returns 5
  127. cr6         - returns 6
  128. cr7         - returns 7
  129.  
  130.                          In-built string variables
  131.                          —————————————————————————
  132. All internal string variables are surrounded by square brackets “[]”.
  133. String variables replace themselves with their respective contents and can appear in fields 2 and 3 only.
  134.  
  135. [ukdate$]   - replaces itself with the current date as a string in the format of “ddmmyy”
  136. [usdate$]   - replaces itself with the current data as a string in the format “mmddyy”
  137. [day$]      - replaces itself day of month as a two digit string with leading zero suppressed.
  138. [month$]    - replaces itself current month as 2 digit  numerical string with leading zero suppression.
  139. [year$]     - replaces itself 2 digit year string with no leading zero suppression. i.e. “97”
  140. [longyear$] - replaces itself four digit year string. i.e. “1997”
  141.  
  142. [time$]     - replaces itself with the current local time as a string in the format of “hhmm”
  143. [time_with_secs$]    - replaces itself with the local time as a string in the format of “hhmmss”
  144. [hour$]     - replaces itself with two digit hour string with leading zero suppressed.
  145. [minutes$]  - replaces itself with 2 digit minute with no leading zero suppression.
  146. [seconds$]  - replaces itself 2 digit seconds with no leading zero suppression.
  147.  
  148. [build$]    - replaces itself with the build number which is incremented by 1 for every good build 
  149.               of a project. Maximum value is 9999999. If this value is reached the counter resets
  150.               to 0 and carries on from there.
  151. [pi$]       - replaces itself with 3.14159265358979.
  152. [vers$]     - replaces itself with Fantasm’s version.
  153.  
  154. [A$] - [Z$] - 26 internal user strings. Use with the string manipulation  directives - 
  155.               EQU$,  LEFT$,  MID$,  RIGHT$,  CONCAT$,  LEN  and STR$.
  156.               Each string limited to 255 characters in length. The identifier is case insensitive; that is
  157.               [P$] is the same as [p$] as far as Fantasm is concerned. See 2-2 for details.
  158.  
  159. Examples:
  160. [C$]    equ$    "Hello"      *make C$=”Hello”
  161.  
  162. [A$]:   equ$    [B$]         *copy B$ to A$
  163.  
  164. fred:   str$    [hours$]     *make fred = hours$ as a number.
  165.  
  166. fred:   len     [M$]         *make fred = length of the string in M$.
  167.  
  168. [E$]    right$  [ukdate$],2  *make E$= current year as a 2 digit string
  169.  
  170. a:      len     "fred"       *a will become 4, not 6.
  171.  
  172. Please see LSA0040 for full details.
  173. Updated 7th September 1997.
  174. End of file.